package com.arquitecturajava;

import java.sql.SQLException;
import java.util.List;

/**
 *
 * @author Rick
 */
public class libro {

    private String isbn;
    private String titulo;
    private String categoria;

    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getCategoria() {
        return categoria;
    }

    public void setCategoria(String categoria) {
        this.categoria = categoria;
    }
         
    /* constructor de la clase */
    public libro() {
        super();
    }

    public libro(String isbn) {
        super();
        this.isbn = isbn;
    }
    
    public libro(String isbn, String titulo, String categoria) {
        super();
        this.isbn = isbn;
        this.titulo = titulo;
        this.categoria = categoria;
    }

    public void insertar() throws ClassNotFoundException, SQLException  {
        String consultaSQL = "insert into Libros (isbn,titulo,categoria) values ";
        consultaSQL += "('" + this.isbn + "','" + this.titulo + "','"
                + this.categoria + "')";
        dataBaseConnection dbc = new dataBaseConnection();
        dbc.modificarRegistro(consultaSQL);
    }
    
    public static libro buscarPorClave(String isbn) {
        String consultaSQL = " select isbn,titulo,categoria from Libros"
                           + " where isbn ='"+ isbn +"'  ";
        dataBaseConnection<libro> dbc = new dataBaseConnection<>();
        List<libro> listaDeLibros
                = dbc.seleccionarRegistros(consultaSQL, libro.class);
        return listaDeLibros.get(0);
    }

    public static List<String> buscarCategorias() {
        String consultaSQL = "select distinct(categoria) as categoria from Libros";
        dataBaseConnection<String> dbc = new dataBaseConnection<>();
        List<String> listaxCategorias = dbc.seleccionarRegistros(
                consultaSQL, String.class);

        return listaxCategorias;
    }

    public static List <libro> buscarTodos() {
        String consultaSQL = "select isbn,titulo,categoria from libros";
        dataBaseConnection<libro> dbc = new dataBaseConnection<>();
        List<libro> listaLibros = dbc.seleccionarRegistros(
                consultaSQL, libro.class);
        
        return listaLibros;
    }
   
    public static List<libro> buscarxCategoria(String categoria) {
        String consultaSQL = "select isbn,titulo,categoria from libros where categoria ='" 
                + categoria + "'";
        dataBaseConnection<libro> dbc = new dataBaseConnection<>();
        List<libro> listaDeLibros = 
                dbc.seleccionarRegistros(consultaSQL, libro.class);
        return listaDeLibros;
    }

    public void guardar() throws SQLException {
        String consultaSQL = "update Libros set titulo='" 
                + this.titulo + "', categoria ='"
                + categoria+"'  where isbn='"+ isbn+"'  ";
        dataBaseConnection<libro> dbc = new dataBaseConnection<>();
        dbc.modificarRegistro(consultaSQL);
    }
    
    public void borrar() throws SQLException {
        String consultaSQL = "delete from Libros where isbn='" + this.isbn + "'";
        dataBaseConnection<libro> helper = new dataBaseConnection<>();
        helper.modificarRegistro(consultaSQL);
    }
}
